#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>



bool MyCompare(const std::string& a, const std::string& b) {
	if (a.size() == b.size()) {
		return a < b;
	}
	return a.size() < b.size();
}

std::string arr[10010];
/**
 * 
 * 时间复杂度 
 * 输入：O(nL)
 * 比较：O(L * nlogn)
 * 输出：O(nL)
 * 
 * 总体：O(nL + L * nlogn)
 * 
 *
 * 空间复杂度 O(nL)
 * 
 * 字符串排序
 *
 * @return 
 */
int main() {

	int n;
	scanf("%d", &n);

	for (int i = 0; i < n; i++) {
		std::cin >> arr[i];
	}

	std::sort(arr, arr + n, MyCompare);

	for (int i = 0; i < n; i++) {
		printf("%s\n", arr[i].c_str());
	}

	return 0;
}